
namespace PHSRAG.Security.Enumerations
{
    #region Enum ModuleBit
    /// <summary>
    /// The RoleBit enumeration defines values for distinct role bits.
    /// </summary>
    public enum ModuleBit
    {
        /// <summary>Admin Module</summary>
        Admin = 2,

        /// <summary>Agreements Module</summary>
        Agreements = 4,

        /// <summary>Humans Module</summary>
        Humans = 8,

        /// <summary>Personnel Module</summary>
        Personnel = 16,

        /// <summary>Purchasing Module</summary>
        Purchasing = 32,

        /// <summary>ClinicalTrials Module</summary>
        ClinicalTrials = 64,

        /// <summary>CoI Module</summary>
        COI = 128,

        /// <summary>Reporting Module</summary>
        Reporting = 256,

        /// <summary>Animals Module</summary>
        Animals = 512
    }
    #endregion

    #region Enum ModuleRoleBit
    /// <summary>
    /// The ModuleRoleBit enumeration defines values for distinct module role bits.
    /// </summary>
    public enum ModuleRoleBit
    {
        /// <summary>Within Admin, the System administrator role.</summary>
        SystemAdministrator = 2,

        /// <summary>Within Admin/Humans Management, the ability to administer Humans Forms. (only for 
        /// eIRB security)</summary>
        FormsManager = 4,

        /// <summary>Within Humans, the ability to lock/unlock any protocol.</summary>
        LockUnlockProtocols = 8,

        /// <summary>Within Purchasing, the ability to manage any user order.</summary>
        ManageUserOrders = 16,

        /// <summary>Within Admin, the Principal Investigator Role can give out access to their own resources.</summary>
        PrincipalInvestigator = 32,

        /// <summary>Within Admin/Humans Management, the ability to maintain workflow paths.
        /// (only for eIRB security)</summary>
        WorkflowManager = 64,

        /// <summary>Within Admin/Humans Management, the ability to maintain new drugs/devices to be used 
        /// within the Humans module. (only for eIRB security)</summary>
        ListManager = 128,

        /// <summary>Within Humans, the ability to create a new Protocol or create 
        /// a new Process on an active Protocol </summary>
        CreateNewProtocolProcess = 256,

        /// <summary>Within COI, the ability to submit COI, view reports of Individuals under them,
        /// add/remove users to their hierarchy</summary>
        Supervisor = 512,

        /// <summary>Within Admin, the ability to manage refcodes</summary>
        RefcodeManager = 1024,

        /// <summary>Within COI, the ability to view all individual reports, run custom and standard report
        /// add/edit COI info, add/remove users to/from supervisor hierarchy, access to the COI admin tab</summary>
        SuperUser = 2048,

        /// <summary>within Clinical Trials ability to read Final Budgets</summary>
        ReadFinalBudgets = 4096,

        /// <summary>within Clinical Trials ability to read Pending Budgets</summary>
        ReadPendingBudgets = 8192,

        /// <summary> create new budgets </summary>
        CreateNewBudgets = 16384,

        /// <summary>within Clinical Trials ability to modify Pending Budgets</summary>
        ModifyPendingBudgets = 32768,

        /// <summary>within Clinical Trials ability to modify Final Delete Budgets</summary>
        ModifyFinalDeleteBudgets = 65536,

        /// <summary>within Clinical Trials ability to do anything with the trials</summary>
        BudgetAdministrator = 131072,
        /// <summary>Agreement access for the reporting module</summary>
        Agreement = 262144,
        /// <summary>Agreement Central access for the reporting module</summary>
        AgreementCentral = 524288,
        /// <summary>Agreement CSCR for the reporting module</summary>
        AgreementCSCR = 1048576,
        /// <summary>Agreement Senior leadership access for the reporting module</summary>
        AgreementSeniorLeadership = 2097152,
        ///<summary>Within Admin sponsor Administrator</summary>
        SponsorManager = 4194304,
        ///<summary>Within Admin/Animals Management, the ability to maintain workflow paths.</summary>
        AnimalsWorkflowManager = 8388608,
        ///<summary>Privilege to access Animals Management/Forms Management tab</summary>
        AnimalsFormsManager = 16777216,

        /// <summary>Allow a user to view the Agreement Overview pages regardless of the result size</summary>
        NoAgreementOverviewLimit = 33554432,

        /// <summary>Within Animals, the ability to create a new Protocol or create 
        /// a new Process on an active Protocol </summary>
        CreateNewAnimalsProtocolProcess = 67108864,

        /// <summary>Within Animals, the ability to lock/unlock any protocol.</summary>
        LockUnlockAnimalsProtocols = 134217728,

		/// <summary>Privilege to add/modify Research Contacts Information</summary>
		ResearchContactsManager = 268435456,
        ///Within COI, the ability to view disclosure page.
        DisclosureLookupUser = 536870912,
        ///Within Agreements, the ability to set Arra IsFinalReport
        SetArraIsFinalReport = 1073741824

    }
    #endregion

    #region Enum AccessRightBit
    /// <summary>
    /// The AccessRightBit enumeration defines values for distinct access rights.
    /// </summary>
    public enum AccessRightBit
    {
        // ToDo: I have added summary comments to each of these enumerations so that they documentation can include them.
        // ToDo: We need to have better comments.  Bihar (3/6/2006).

        /// <summary>KeyGiver</summary>
        KeyGiver = 2,

        /// <summary>ViewFinancialInformation</summary>
        ViewFinancialInformation = 4,

        /// <summary>ViewSalaryInformation</summary>
        ViewSalaryInformation = 8,

        /// <summary>ViewAccess</summary>
        ViewAccess = 16,

        /// <summary>ViewPendingAgreements</summary>
        ViewPendingAgreements = 32,

        /// <summary>ViewProtocolInformation</summary>
        ViewProtocolInformation = 64,

        /// <summary>EditProtocolInformation</summary>
        EditProtocolInformation = 128,

        /// <summary>ManageProtocolInformation</summary>
        ManageProtocolInformation = 256,

        /// <summary>ViewPeoplesoftInformation</summary>
        ViewPeoplesoftInformation = 512,

        /// <summary>ViewUserOrder</summary>
        ViewUserOrder = 1024,

        /// <summary>ManageUserOrder</summary>
        ManageUserOrder = 2048,

        /// <summary>ReadFinalBudgets</summary>
        ReadFinalBudgets = 4096,

        /// <summary>ReadPendingBudgets</summary>
        ReadPendingBudgets = 8192,

        /// <summary>CreateNewBudgets</summary>
        CreateNewBudgets = 16384,

        /// <summary>ModifyPendingBudgets</summary>
        ModifyPendingBudgets = 32768,

        /// <summary>ModifyFinalDeleteBudgets</summary>
        ModifyFinalDeleteBudgets = 65536,

        /// <summary>Give all the rights to clinical trials</summary>
        BudgetAdministrator = 131072,

        /// <summary></summary>
        ViewAnimalsProtocolInformation = 262144,

        /// <summary></summary>
        EditAnimalsProtocolInformation = 524288,

        /// <summary></summary>
        ManageAnimalsProtocolInformation = 1048576,

        /// <summary></summary>
        ViewPatientCareDetails = 2097152

    }
    #endregion
}

// --- EOF ---
